﻿using System;
using Eamon.MeituanDotnetSDK.api.common.request;
using Eamon.MeituanDotnetSDK.@enum;

namespace Eamon.MeituanDotnetSDK.api.common
{
    public interface IAPI
    {
        /// <summary>
        /// 获取HttpMethodEnum
        /// </summary>
        /// <returns>The http method.</returns>
        HttpMethodEnum getHttpMethod();

        /// <summary>
        /// 获取http请求的url
        /// </summary>
        /// <returns>The http URL.</returns>
        string getHttpUrl();

        /// <summary>
        /// 获取接口验证类型，过时的，不需要了
        /// </summary>
        /// <returns>The authenticate type.</returns>
        AuthenticateType getAuthenticateType();

        /// <summary>
        /// 获取接口参数
        /// </summary>
        /// <returns>The API Request.</returns>
        IAPIRequest getAPIRequest();

        /// <summary>
        /// 设置API参数
        /// </summary>
        /// <param name="apiRequest">API request.</param>
        void setAPIRequest(IAPIRequest apiRequest);

        /// <summary>
        /// 获取API返回模型类
        /// </summary>
        /// <returns>The response class.</returns>
        Type getResponseClass();

        /// <summary>
        /// 获取API参数模型类
        /// </summary>
        /// <returns>The request class.</returns>
        Type getRequestClass();

        /// <summary>
        /// 获取API方法名
        /// </summary>
        /// <returns>The method.</returns>
        string getMethod();
    }
}
